1. Technical Field
The claimed subject matter relates generally to techniques relating to managed computer programming objects and, more specifically, to a Managed JavaBean (Mbean) programming object that is able to generate and manage additional Mbeans.
2. Description of the Related Art
For the past several decades, computers have become increasingly connected. Originally, computers were stand-alone devices, each typically designed and programmed for a specific task. Soon however, the advantages of combining computers into networks became apparent. Networks of computers were able to share resources such as printers and memory and eventually even able to share, or distribute, processing tasks. For example, a search of a large database can often be broken into multiple, mutually exclusive tasks by assigning different processors and/or computers to search different segments of the database.
As computers have become increasingly interconnected, techniques have been developed to enable multiple computers to work together. One such development is JAVA®, a high-level programming language originally developed by Sun Microsystems, Inc. of Mountain View, Calif. JAVA® enables programmers to develop code that is platform independent. Simply stated, code written in the JAVA® programming language is converted, or “interpreted,” into actual computer instructions corresponding to a particular computer by a JAVA® Virtual Machine (JVM) that executes on the computer. In other words, by installing a JVM that corresponds to particular computer hardware and the associated operating system, a programmer can write code without regard to the particular hardware and operating system.
In addition to the increased connectivity of traditional computers, many devices that incorporate computing components have also become both inter-connected and JAVA®-enabled. Examples include Internet, or “web,” telephones, cable boxes and televisions and application clients and servers. To facilitate the management of such JAVA®-enable resources, JAVA® Management Extensions (JMX) has been developed. JMX is a standard for managing and monitoring devices, applications and services in a JAVA environment. JMX defines a management architecture, design patterns, application programming interfaces (APIs), and services for building web-based, distributed, dynamic and modular solutions to manage JAVA® resources and programming objects.
JMX provides for the creation and implementation of JAVA® managed beans, or “Mbeans,” which are programming objects that represent objects to be managed. Each Mbean has a management interface that enables a user or program to monitor, manage and be notified of changes to particular configuration parameters of a corresponding resource. For example, an Mbean representing an application may include attributes and methods corresponding to the application's cache size. In this example, reading a “cacheSize” attribute would return the application's cache size and writing a “cacheSize” attribute would update the size of the application's cache, thus changing the application's configuration.
Although the JMX specification has been updated to include invocation in a multi-user, distributed environment, a JMX Mbean is typically a stand-alone object, i.e. Mbeans are not organized into hierarchies related to function. In other words, the current state of the art allows the end user to access a predefined Mbean but does not enable a user to generate a class of Mbeans in which individual Mbeans are managed by a “parent” Mbean and accessed based upon an assigned name. In addition, Mbeans are “singleton” objects. Only a single Mbean of any particular type is instantiated and that single Mbean does not store any client state information. Each time the Mbean of a particular type is called client state information must be passed to the Mbean.